import axios, { AxiosRequestConfig, RawAxiosRequestHeaders } from 'axios';

import { useUserInfoStore } from '@/stores/userInfo';
// 配置新建一个 axios 实例
const service = axios.create({
    // 拿到当前项目的环境变量,环境变量会随着环境的变化而变化
    // 当是开发环境的时候,会走根目录下的 .env.development
    // 当时生产环境的时候,会走根目录下的 .env.production
    // baseURL: import.meta.env.VITE_API_URL,
    timeout: 50000,
});

// 添加请求拦截器
service.interceptors.request.use(
    (config:AxiosRequestConfig<any>) => {

        // 请求头携带token
        const userStore = useUserInfoStore()
        let token = userStore.token
        if (token) {
           ( config.headers as RawAxiosRequestHeaders).token = token
        }

        // 判断是否存在正在搜素的东西，如果存在那么就携带两个请求头
        let keywordPrefix = localStorage.getItem('keywordPrefix')
        if (keywordPrefix) {
            config.headers  = { 'Content-Type': 'application/x-www-form-urlencoded'}
           config.headers.charset = 'UTF-8'
        }
        
        return config;
    },err => {
        return Promise.reject(err)
    }
);
service.interceptors.response.use(res => {
    return res.data
}, err => {
    return Promise.reject(err)
})

export default service;

